package com.michaelfotiadis.eventtriggeredskypecaller.utils;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import com.michaelfotiadis.eventtriggeredskypecaller.containers.EventContact;
import android.content.ContentResolver;
import android.database.Cursor;
import android.provider.ContactsContract;
import android.util.Pair;
public class AdapterUtils {
private final String TAG = "AdapterUtils";
public List<Pair<String, String>> queryContacts(final ContentResolver cr) {
Logger.i(TAG, "Generating Contact DataList");
final Cursor skypeCursor = cr.query(
ContactsContract.Data.CONTENT_URI,
null,
null,
null,
ContactsContract.Data.DISPLAY_NAME + " collate localized");
final List<Pair<String, String >> dataList = new ArrayList<Pair<String,String>>();
final Set<String> addedSkypeNames = new HashSet<String>();
while (skypeCursor.moveToNext()) {
final int type = skypeCursor
.getInt(skypeCursor
.getColumnIndex(ContactsContract.CommonDataKinds.Im.PROTOCOL));
final String contactName = skypeCursor.getString(skypeCursor.getColumnIndex(ContactsContract.Data.DISPLAY_NAME));
final String imName = skypeCursor.getString(skypeCursor
.getColumnIndex(ContactsContract.CommonDataKinds.Im.DATA));
if(type == ContactsContract.CommonDataKinds.Im.PROTOCOL_SKYPE){
if(imName != null && imName.trim().length() > 0){
final String skypeName = imName.trim();
if(!addedSkypeNames.contains(skypeName)){
dataList.add(new Pair<String, String>(contactName, skypeName));
addedSkypeNames.add(skypeName);
}
}
}
}
skypeCursor.close();
return dataList;
}
public List<Pair<String, String>> pairListFromObjectList(final ContentResolver cr, ArrayList<EventContact> contactList) {
Logger.i(TAG, "Generating Config File DataList");
final List<Pair<String, String >> dataList = new ArrayList<Pair<String,String>>();
for (EventContact contact : contactList) {
dataList.add(new Pair<String, String>(contact.getContactName(), contact.getContactDevice() + " / " + contact.getContactAction()));
}
return dataList;
}
}